home *** CD-ROM | disk | FTP | other *** search
- Development Tools
-
- The function of a development system is to facilitate the
- writeing and testing of code. The Turbo IDE works pretty well
- as far as the Edit/Compile/Test portion of the cycle goes, but
- doesn't facilitate multiple program development, code libraries
- documentation or distribution. Until recently, I have been
- adding utility programs one by one as the need arises. Along the
- way, I have been building up a library of routines and objects which
- make each additional program easier to assemble.
-
- The following are stand-alone utilities, each performing a
- useful function. Because they share code libraries and structures,
- their operation is similar. See the section on Utility Program Structure
- for details.
-
- A design target of mine is that any program should be 80%-90%
- library routines. To the maximum extent possible, re-useable code
- is made a little more general than necessary and moved into the library.
- This makes the utilities themselves pretty simple to examine.
-
- My primary goals are:
-
- 1. Everything is absolutely in the PUBLIC DOMAIN.
- 2. Everything can be re-compiled and changed to taste.
- 3. Most sensible options are supported via CFG files or command
- line parameters.
-
- The programs:
-
- 1. TLISTER - Optimized for the listing of PASCAL source files. If
- file extension not specified, assumes '.pas'. It can handle '*.pas'
- for all files on a directory. Page header contains
- the file mod date, name, and page number. The command line
- option INTERFACE=YES will list out only the interface section of
- a unit.
-
- 2. TPRINT - Old-Fashioned text file formatter. Printing is controlled
- by visible "\" commands in the text. Commands for setting headers
- and footers, centering lines, word-wrap, indent and others are
- available. Produces decent looking documentation.
-
- 3. TED - My own personalized text editor built around Borland's Editor
- Toolbox - BINED. Built strictly to my own tastes, but it is
- small and can be hooked into programs. The EXE is freely useable
- by anyone, from Borland's license, but modifying the source
- requires purchasing the Toolbox. {Oops, BINED isn't working
- with TP7, with each generation of compiler, I wind up having
- to go back to BORLAND}
-
- 4. USES - Scans unit and program files for the USES statement and
- parses it. USES * goes through all '.pas' files on the current
- directory and prints their uses statement. USES miscstuf would
- scan all '.pas' files and list only those which used 'miscstuf'.
-
- 5. DUMP - simple hex dumping utility, but with enough controls over
- start and end points, amount listed and format to make it a
- useful tool.
-
- 6. DIRS - provides a summary of the disk at the directory level. Scans
- all paths and accumulates statistics for each directory just
- off the root. Lets you see quickly which obsolete directories
- are costing the most disk space.
-
- 7. BIGFILES - scans entire disk, and lists files which exceed the
- specified file size.
-
- 8. FIND - scans entire disk for files matching template. Bigger andd
- probably slower than many others, but it is free and I can control it.
-
- 9. ZIP & PUT - My personal backup system. See later discussion.
-
- 10. DB - Ongoing xBase utilities and routines. I like ALPHA 4 and R&R Report
- Writer and others, but I can't give away or sell them. Current
- status is:
- DB DDL - shows record structure
- DB DUMP - Record lister with considerable power
- DB ZAP - Deletes all records
- DB CLONE - Creates new empty file from existing DBF
- DB SORT - Sorts (and packs) a DBF via a key
- DB EXPORT - Extracts structure and data to text file
- DB IMPORT - Creates DBF and loads it
- DBPASGEN - generates a small pascal unit to access the DBF file
-
- Code Library status is centered around DBF_object and
- KEYED_DBF_object, with lower level access in xbasstuf. DBF read
- rewrite, append, delete and various other functions. I estimate
- the system at 85% completion (what is there is 100%, but there
- are missing logical pieces).
-
- I do not support xBase indexing (I have my own) primarily because
- I don't have useful specifications for the files. Same goes
- for memos.
-
- I have not yet approached the screen entry aspect since I am happy
- with Alpha 4, but would love to integrate a good PUBLIC DOMAIN
- screen package.
-
- 11. TP - My own IDE, replaces a number of batch files, uses TPC for
- compilation and handles smart copying to and from library units.
- You could easily substitute your own favorite text editor.
-
- 12. DELAY - trivial. Need to put delays into some compile batch files
- to slow them enough to see errors.
-
- 13. ENV - for addressing envelopes on a LJ 4, not generalized, but would
- probably work for other PCL based printers, could be generalized.
-
-
- Overall structure:
-
- 1. Most utility programs allow for '.cfg' files to process input parameters.
- If the program is named XXXX.exe, config files are merged together in the
- following order:
- 0. compiled in default values
- 1. c:\XXXX.cfg
- 2. XXXX.cfg wherever the EXE file is
- 3. XXXX.cfg in the current directory
- 4. --------.--- named by EXTRA=--------.--- in one of the cfg files
-
- All of the cfg files are optional, assuming the compiled defaults
- do something useful.
-
- In these files are things like COMPRESSED=YES or LABEL='Test Program',
- and the last one encountered rules. This allows utilities to take on
- locally useful defaults without messing up standard configuration. For
- example, I tend to leave TLISTER with OUT= pointed to LPT1 so I can
- quickly print out source files. If I don't want to waste paper on a
- particular project, I can add TLISTER.cfg on a development directory
- and place OUT=TEMP.TXT in it. This makes TLISTER act differently here
- than anywhere else.
-
- I can easily have ENV (envelope printer) point to different address
- lists on my wife's directories than my own.